Support building with embedded libsoup
authorColin Walters <walters@verbum.org>
Thu, 14 Jun 2012 20:22:23 +0000 (16:22 -0400)
committerColin Walters <walters@verbum.org>
Thu, 14 Jun 2012 23:34:28 +0000 (19:34 -0400)
Makefile-ostree.am
Makefile.am
configure.ac
embedded-dependencies/Makefile.am
embedded-dependencies/Makefile.bootstrap

index 628d9a133cc380daa8002038e47246cf169fd607..b5b07b44030ff45d77978cc3942d9aa691931eb2 100644 (file)
@@ -57,8 +57,8 @@ ostree_pull_SOURCES = src/ostree/ot-main.h \
        src/ostree/ostree-fetcher.c \
        src/ostree/ostree-pull.c
 
-ostree_pull_CFLAGS = $(ostree_bin_shared_cflags) $(OT_DEP_SOUP_CFLAGS)
-ostree_pull_LDADD = $(ostree_bin_shared_ldadd) $(OT_DEP_SOUP_LIBS)
+ostree_pull_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
+ostree_pull_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
 endif
 
 MANPAGES += doc/ostree.1
index af358779ebdf4443fe7c8a19bc4ea923b9df869d..7ff7d490a14fc43c16bb60e792e06a58d4fbf7b7 100644 (file)
@@ -20,7 +20,7 @@ AM_CPPFLAGS = -DDATADIR='"$(datadir)"' -DLIBEXECDIR='"$(libexecdir)"' \
        -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_28 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_28
 AM_CFLAGS = $(WARN_CFLAGS)
 
-if BUILD_EMBEDDED_GLIB
+if BUILD_EMBEDDED_DEPENDENCIES
 SUBDIRS = embedded-dependencies .
 else
 SUBDIRS = .
@@ -40,22 +40,32 @@ noinst_PROGRAMS =
 privlibdir = $(pkglibdir)
 privlib_LTLIBRARIES =
 
-if BUILD_EMBEDDED_GLIB
+if BUILD_EMBEDDED_DEPENDENCIES
 OT_INTERNAL_GIO_UNIX_CFLAGS = \
-       -I$(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/include/glib-2.0 \
-       -I$(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/include/gio-unix-2.0 \
-       -I$(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/glib-2.0/include \
+       -I$(top_builddir)/embedded-dependencies/EMBEDDEPS/include/glib-2.0 \
+       -I$(top_builddir)/embedded-dependencies/EMBEDDEPS/include/gio-unix-2.0 \
+       -I$(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/glib-2.0/include \
        $(NULL)
 OT_INTERNAL_GIO_UNIX_LIBS = \
-       $(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/libglib-2.0.so \
-       $(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/libgthread-2.0.so \
-       $(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/libgmodule-2.0.so \
-       $(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/libgobject-2.0.so \
-       $(top_builddir)/embedded-dependencies/install-glib/EMBEDGLIB/lib/libgio-2.0.so \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libglib-2.0.so \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libgthread-2.0.so \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libgmodule-2.0.so \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libgobject-2.0.so \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libgio-2.0.so \
+       $(NULL)
+OT_INTERNAL_SOUP_CFLAGS = \
+       $(OT_INTERNAL_GIO_UNIX_CFLAGS) \
+       -I$(top_builddir)/embedded-dependencies/EMBEDDEPS/include/libsoup-2.4 \
+       $(NULL)
+OT_INTERNAL_SOUP_LIBS = \
+       $(OT_INTERNAL_GIO_UNIX_LIBS) \
+       $(top_builddir)/embedded-dependencies/EMBEDDEPS/lib/libsoup-2.4.so \
        $(NULL)
 else
 OT_INTERNAL_GIO_UNIX_CFLAGS = $(OT_DEP_GIO_UNIX_CFLAGS)
 OT_INTERNAL_GIO_UNIX_LIBS = $(OT_DEP_GIO_UNIX_LIBS)
+OT_INTERNAL_SOUP_CFLAGS = $(OT_DEP_SOUP_CFLAGS)
+OT_INTERNAL_SOUP_LIBS = $(OT_DEP_SOUP_LIBS)
 endif
 
 include Makefile-daemon.am
@@ -108,8 +118,11 @@ endif
 release-tag:
        git tag -m "Release $(VERSION)" v$(VERSION)
 
+embed_dependency=tar --append --exclude='.git/*' --transform='s,^embedded-dependencies/,ostree-embeddeps-$(VERSION)/embedded-dependencies/,' --file=ostree-embeddeps-$(VERSION).tar.tmp
+
 release-tarball-embedded:
        git archive --format=tar --prefix=ostree-embeddeps-$(VERSION)/ HEAD > ostree-embeddeps-$(VERSION).tar.tmp
-       tar --append --exclude='.git/*' --transform='s,^embedded-dependencies/,ostree-embeddeps-$(VERSION)/embedded-dependencies/,' --file=ostree-embeddeps-$(VERSION).tar.tmp embedded-dependencies/glib
+       $(embed_dependency) embedded-dependencies/glib
+       $(embed_dependency) embedded-dependencies/libsoup
        mv ostree-embeddeps-$(VERSION).tar{.tmp,}
        gzip -f ostree-embeddeps-$(VERSION).tar 
index ad5525612cfb537aa5dde51649f77c6686eab597..a82e4c2132112d2f23fa2a40a817884549dcce4b 100644 (file)
@@ -26,17 +26,38 @@ AC_CHECK_HEADER([attr/xattr.h],,[AC_MSG_ERROR([You must have attr/xattr.h from l
 
 PKG_PROG_PKG_CONFIG
 
-AC_ARG_ENABLE(embedded-glib,
-           AS_HELP_STRING([--enable-embedded-glib], [Use embedded GLib copy]),,
-           enable_embedded_glib=no)
-AM_CONDITIONAL(BUILD_EMBEDDED_GLIB, test x$enable_embedded_glib = xyes)
-if test x$enable_embedded_glib = xyes; then
-  echo "NOTICE: Embedded glib enabled"
+AC_ARG_ENABLE(embedded-dependencies,
+           AS_HELP_STRING([--enable-embedded-dependencies], [Use embedded GLib and libsoup copies]),,
+           enable_embedded_dependencies=no)
+AM_CONDITIONAL(BUILD_EMBEDDED_DEPENDENCIES, test x$enable_embedded_dependencies = xyes)
+if test x$enable_embedded_dependencies = xyes; then
+  echo "NOTICE: Embedded dependencies (GLib and libsoup) enabled"
+  with_soup=yes
 else
   GIO_DEPENDENCY="gio-unix-2.0 >= 2.28"
   PKG_CHECK_MODULES(OT_DEP_GIO_UNIX, $GIO_DEPENDENCY)
+
+  SOUP_DEPENDENCY="libsoup-2.4 >= 2.39.1"
+  AC_ARG_WITH(soup-gnome,
+           AS_HELP_STRING([--without-soup-gnome], [Do not use libsoup-gnome (implies no pull support)]),
+           :, with_soup=maybe)
+  if test x$with_soup != xno; then
+    AC_MSG_CHECKING([for $SOUP_DEPENDENCY])
+    PKG_CHECK_EXISTS($SOUP_DEPENDENCY, have_soup_gnome=yes, have_soup_gnome=no)
+    AC_MSG_RESULT([$have_soup_gnome])
+    if test x$have_soup_gnome = xno && test x$with_soup != xmaybe; then
+       AC_MSG_ERROR([libsoup-gnome is enabled but could not be found])
+    fi
+    if test x$have_soup_gnome = xyes; then
+       PKG_CHECK_MODULES(OT_DEP_SOUP, $SOUP_DEPENDENCY)
+       with_soup=yes
+    else
+       with_soup=no
+    fi         
+  fi
 fi
-SOUP_DEPENDENCY="libsoup-2.4 >= 2.39.1"
+AM_CONDITIONAL(USE_LIBSOUP_GNOME, test x$enable_embedded_dependencies = xyes || x$with_soup != xno)
+
 LIBARCHIVE_DEPENDENCY="libarchive >= 2.8.0"
 
 AC_ARG_ENABLE(documentation,
@@ -51,25 +72,6 @@ if test x$enable_documentation = xyes; then
 fi
 AM_CONDITIONAL(BUILD_DOCUMENTATION, test x$enable_documentation = xyes)
 
-AC_ARG_WITH(soup-gnome,
-           AS_HELP_STRING([--without-soup-gnome], [Do not use libsoup-gnome (implies no pull support)]),
-           :, with_soup_gnome=maybe)
-if test x$with_soup_gnome != xno; then
-    AC_MSG_CHECKING([for $SOUP_DEPENDENCY])
-    PKG_CHECK_EXISTS($SOUP_DEPENDENCY, have_soup_gnome=yes, have_soup_gnome=no)
-    AC_MSG_RESULT([$have_soup_gnome])
-    if test x$have_soup_gnome = xno && test x$with_soup_gnome != xmaybe; then
-       AC_MSG_ERROR([libsoup-gnome is enabled but could not be found])
-    fi
-    if test x$have_soup_gnome = xyes; then
-       PKG_CHECK_MODULES(OT_DEP_SOUP, $SOUP_DEPENDENCY)
-       with_soup_gnome=yes
-    else
-       with_soup_gnome=no
-    fi         
-fi
-AM_CONDITIONAL(USE_LIBSOUP_GNOME, test $with_soup_gnome != no)
-
 AC_ARG_WITH(libarchive,
            AS_HELP_STRING([--without-libarchive], [Do not use libarchive]),
            :, with_libarchive=maybe)
@@ -101,7 +103,7 @@ echo "
     ===============
 
 
-    embedded GLib: $enable_embedded_glib
-    libsoup (retrieve remote HTTP repositories): $with_soup_gnome
+    embedded dependencies: $enable_embedded_dependencies
+    libsoup (retrieve remote HTTP repositories): $with_soup
     libarchive (parse tar files directly): $with_libarchive
 "
index 3860f4cbd9830d5ad1edb00f686dd39c161e79a4..9c3376001aafbf7ae44b37b0d76bb7be5411f6a3 100644 (file)
 build-glib/gio/libgio-2.0.la:
        mkdir -p build-glib
        (srcdir=$$(cd $(srcdir) && pwd); \
+        builddir=$$(pwd); \
         cd build-glib; \
-         $${srcdir}/glib/autogen.sh --prefix=/EMBEDGLIB --disable-introspection --disable-man --disable-gtk-doc && \
+         $${srcdir}/glib/autogen.sh --prefix=$${builddir}/EMBEDDEPS --disable-introspection \
+           --disable-man --disable-gtk-doc && \
         $(MAKE))
 
-install-glib/EMBEDGLIB/include/glib-2.0/glib.h: build-glib/gio/libgio-2.0.la
+EMBEDDEPS/include/glib-2.0/glib.h: build-glib/gio/libgio-2.0.la
        (top_srcdir=$$(cd $(top_srcdir) && pwd); \
         builddir=$$(pwd); \
         cd build-glib && \
-         rm -rf install-glib && \
-        $(MAKE) install DESTDIR=$${builddir}/install-glib)
+        $(MAKE) install)
+
+build-libsoup/libsoup/libsoup-2.4.la: EMBEDDEPS/include/glib-2.0/glib.h
+       mkdir -p build-libsoup
+       (srcdir=$$(cd $(srcdir) && pwd); \
+        builddir=$$(pwd); \
+        cd build-libsoup; \
+        env PATH=$${builddir}/EMBEDDEPS/bin:$$PATH \
+            PKG_CONFIG_PATH=$${builddir}/EMBEDDEPS/lib/pkg-config \
+         $${srcdir}/libsoup/autogen.sh --prefix=$${builddir}/EMBEDDEPS --disable-introspection \
+           --disable-soup-gnome --disable-gtk-doc --disable-tls-check --without-apache-httpd \
+           --without-ntlm-auth && \
+        $(MAKE))
+
+EMBEDDEPS/include/libsoup-2.4/libsoup/soup.h: build-libsoup/libsoup/libsoup-2.4.la
+       (top_srcdir=$$(cd $(top_srcdir) && pwd); \
+        builddir=$$(pwd); \
+        cd build-libsoup && \
+        $(MAKE) install)
 
-all-local: install-glib/EMBEDGLIB/include/glib-2.0/glib.h
+all-local: EMBEDDEPS/include/libsoup-2.4/libsoup/soup.h
 
 install-exec-local: 
        echo `pwd`
        $(MKDIR_P) $(DESTDIR)/$(pkglibdir)
-       install install-glib/EMBEDGLIB/lib/*.so.* $(DESTDIR)/$(pkglibdir)
+       install EMBEDDEPS/lib/*.so.* $(DESTDIR)/$(pkglibdir)
 
index 95ca2a922cf9e2027702d6c37878bb70f59463ae..4a90edd26d6501f0ddbde384e1b028d00d51cca0 100644 (file)
@@ -1,2 +1,3 @@
-embedded-glib-download:
-       test -d glib || git clone --depth=1 git://git.gnome.org/glib -b glib-2-32 glib
+embedded-deps-download:
+       test -d glib || git clone --depth=1 git://git.gnome.org/glib -b master glib
+       test -d libsoup || git clone --depth=1 git://git.gnome.org/libsoup -b master libsoup